﻿namespace WCS.Entities
{
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = false)]
    public class CommandAttribute : Attribute
    {
        /// <summary>
        /// 是否检测距离开启距离检测后，执行相关的对接指令后必须进行距离检查，如cancel等，不需要距离的设置成false，不会受影响
        /// </summary>
        public bool IsCheckedDistance { get; set; }

        /// <summary>
        /// 是否只更新数据库，有些对接指令只是更新数据，不涉及和设备交互
        /// </summary>
        public bool IsOnlyUpdate { get; set; }

        public bool IsOnlyAction { get; set; }

        /// <summary>
        /// 执行成功后机器人需要变成的虚拟状态
        /// </summary>
        public RobotStatus RobotStates { get; set; }


        /// <summary>
        /// 执行指令成功后任务需要变成的状态
        /// </summary>
        public TaskState TaskStates { get; set; }


        /// <summary>
        /// 需要写入agv寄存器的第几位
        /// </summary>
        public ushort NoticeIndex { get; set; }

        /// <summary>
        /// 需要检查plc寄存器的第几位
        /// </summary>
        public ushort CheckIndex { get; set; }



    }
}
